// 查询文章类别
const { func } = require("joi")
const db = require("../db")

// 只能查询没有删除的数据 is_delete = 0 表示没有删除 = 1 表示已经删除
const getCateSql = "select * from article_cate where is_delete=0"

// 查询分类名称和别名不能重复
const getRepeatSql =
  "select * from article_cate where (name=? or alias=?) and is_delete = 0"
// 插入分类

const insertSql = "insert into article_cate set ?" // 通过一个对象来传值  { name: '', alias, is_delete: 0 }

// 删除分类

const deleteSql = "update article_cate set is_delete=1 where Id=?"

// 获取分类详情

const getDetailSql = "select *  from article_cate where Id=? and is_delete = 0"

// 更新分类sql

const updateSql = "update article_cate set ?  where Id=? " // set ? => ？ 表示的是一个对象 和表名字段相对应的对象
exports.getArticleCate = function (req, res) {
  db.query(getCateSql, function (err, data) {
    if (!err) {
      res.send({ message: "获取文章类别成功", status: 0, data })
    } else {
      res.sendError(err)
    }
  })
}

exports.insertArticleCate = function (req, res) {
  const { name, alias } = req.body
  db.query(getRepeatSql, [name, alias], function (err, result) {
    if (!err) {
      if (result.length) {
        // 如果大于0 意味着 name或者alias 和数据库中存在的数据重名了
        res.sendError("您输入的分类名称或别名已经被占用")
      } else {
        // 走到这 说明 可以进行插入啦 表单验证通过 别名也没有占用
        const obj = { name, alias, is_delete: 0 } // 组合成一个对象  Id(自增 不需要传)
        db.query(insertSql, obj, function (error, data) {
          if (!error) {
            res.send({ message: "新增文章类别成功", status: 0 })
          } else {
            res.sendError(error)
          }
        })
      }
    } else {
      res.sendError(err)
    }
  })
}

// 删除文章分类数据
exports.deleteArticleCate = function (req, res) {
  const { id } = req.params
  if (id) {
    db.query(deleteSql, id, function (err, result) {
      if (!err && result.affectedRows === 1) {
        // 如果没有错误 并且影响的行数 为1 所以删除成功
        res.send({ message: "删除文章类别成功", status: 0 })
      } else {
        res.sendError(err ? err : "删除文章类别失败")
      }
    })
  } else {
    res.sendError("没有id不能删除文章")
  }
}

exports.getArticleCateDetail = function (req, res) {
  const { id } = req.params
  if (id) {
    db.query(getDetailSql, id, function (err, result) {
      if (!err && result.length) {
        res.send({ message: "获取分类详情成功", status: 0, data: result[0] })
      } else {
        res.sendError(err ? err : "获取分类详情失败")
      }
    })
  } else {
    res.sendError("没有id不能获取份分类详情")
  }
}

exports.updateCate = function (req, res) {
  // 更新逻辑
  const { Id, name, alias } = req.body
  if (Id && name && alias) {
    db.query(updateSql, [req.body, Id], function (err, result) {
      if (!err && result.affectedRows === 1) {
        // 判断影响的行数是不是 1
        res.send({ message: "更新分类成功", status: 0 })
      } else {
        res.sendError(err ? err : "更新分类失败")
      }
    })
  } else {
    res.sendError("id和名称以及别名不能为空")
  }
}
